/*
 * textgen.c
 *
 *  Created on: Dec 19, 2010
 *      Author: cumeo89
 */

#include "textgen.h"
#include <stdio.h>
#include <stdlib.h>
#include <glib.h>

#define WORD_COUNT 67

char *words[WORD_COUNT] = {
		"tiếng", "Việt", "học sinh", "làm", "bài tập", "toán",
		"lời", "hồn", "ngất", "máu", "say",
		"Một", "hơi", "lặng", "ngắt", "đôi", "tay", "lạnh", "đồng",
		"Xuân", "huyên", "chợt", "tỉnh", "giấc", "nồng",
		"Một", "nhà", "tấp", "nập", "kẻ", "trong", "người", "ngoài",
		"Kẻ", "thang", "người", "thuốc", "bời", "bời",
		"Mới", "dàu", "cơn", "vựng", "chưa", "phai", "giọt", "hồng",
		"Hỏi", "Sao", "ra", "sự", "lạ", "lùng",
		"Kiều", "càng", "nức", "nở", "nói", "không", "ra", "lời",
		"Nỗi", "nàng", "Vân", "mới", "rỉ", "tai",
};

int generate(long fileSize, int fileCount, const char *filePattern) {
	int i;

	int wordLengths[WORD_COUNT];
	for (i = 0; i < WORD_COUNT; i++) {
		wordLengths[i] = g_utf8_strlen(words[i], -1);
	}

	GRand *rand = g_rand_new();
	for (i = 0; i < fileCount; i++) {
		char path[PATH_MAX];
		snprintf(path, PATH_MAX, filePattern, i);
		FILE *f = fopen(path, "wt");

		long iFileSize = (long)(g_rand_double_range(rand, 0.5, 1) * fileSize);
		long currentSize = 0;
		long rowSize = 0;
		while (currentSize < iFileSize) {
			int j = g_rand_int_range(rand, 0, WORD_COUNT);
			fprintf(f, "%s ", words[j]);
			currentSize += wordLengths[j]+1;
			rowSize += wordLengths[j]+1;
			if (rowSize >= 1000) {
				fprintf(f, "\n");
				rowSize = 0;
			}
		}

		fclose(f);
	}
	g_rand_free(rand);

	return 0;
}
